
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>1. Introduction &#8212; PSA Crypto API 1.1.0 documentation</title>
    <link rel="stylesheet" href="../_static/alabaster.css" type="text/css" />
    <link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    '../',
        VERSION:     '1.1.0',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  false,
        SOURCELINK_SUFFIX: '.txt'
      };
    </script>
    <script type="text/javascript" src="../_static/jquery.js"></script>
    <script type="text/javascript" src="../_static/underscore.js"></script>
    <script type="text/javascript" src="../_static/doctools.js"></script>
    <link rel="author" title="About these documents" href="../about.html" />
    <link rel="index" title="Index" href="../genindex.html" />
    <link rel="search" title="Search" href="../search.html" />
    <link rel="next" title="2. Design goals" href="goals.html" />
    <link rel="prev" title="About this document" href="../about.html" />
   
  <link rel="stylesheet" href="../_static/custom.css" type="text/css" />
  
  <meta name="viewport" content="width=device-width, initial-scale=0.9, maximum-scale=0.9" />

  </head>
  <body>
  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body" role="main">
            
  <div class="section" id="introduction">
<h1>1. Introduction</h1>
<p>Arm’s Platform Security Architecture (PSA) is a holistic set of threat models,
security analyses, hardware and firmware architecture specifications, an
open source firmware reference implementation, and an independent evaluation
and certification scheme. PSA provides a recipe, based on
industry best practice, that allows security to be consistently designed in, at
both a hardware and firmware level.</p>
<p>The PSA Cryptographic API (Crypto API) described in this document is an
important PSA component that provides a portable interface to cryptographic operations
on a wide range of hardware. The interface is user-friendly, while still
providing access to the low-level primitives used in modern cryptography. It
does not require that the user has access to the key material. Instead, it uses
opaque key identifiers.</p>
<p>This document is part of the PSA family of specifications. It defines an
interface for cryptographic services, including cryptography primitives and a
key storage functionality.</p>
<p>This document includes:</p>
<ul class="simple">
<li>A rationale for the design. See <a class="reference internal" href="goals.html#design-goals"><span class="secref">Design goals</span></a>.</li>
<li>A high-level overview of the functionality provided by the interface. See <a class="reference internal" href="functionality.html#functionality-overview"><span class="secref">Functionality overview</span></a>.</li>
<li>A description of typical architectures of implementations for this specification. See <a class="reference internal" href="sample-arch.html#architectures"><span class="secref">Sample architectures</span></a>.</li>
<li>General considerations for implementers of this specification, and for applications that use the interface defined in this specification. See <a class="reference internal" href="implementation.html#implementation-considerations"><span class="secref">Implementation considerations</span></a> and <a class="reference internal" href="usage.html#usage-considerations"><span class="secref">Usage considerations</span></a>.</li>
<li>A detailed definition of the API. See <a class="reference internal" href="../api/library/index.html#library-management"><span class="secref">Library management reference</span></a>, <a class="reference internal" href="../api/keys/index.html#key-management"><span class="secref">Key management reference</span></a>, and <a class="reference internal" href="../api/ops/index.html#crypto-operations"><span class="secref">Cryptographic operation reference</span></a>.</li>
</ul>
<p><span><em>PSA Cryptographic API 1.1 PAKE Extension</em> <a class="reference internal" href="../about.html#citation-psa-pake"><span class="cite">[PSA-PAKE]</span></a></span> is a companion document for version 1.1 of this specification. <a class="reference internal" href="../about.html#citation-psa-pake"><span class="cite">[PSA-PAKE]</span></a> defines a new API for Password Authenticated Key Establishment (PAKE) algorithms. The PAKE API is an initial proposal at BETA status. The API defined by <a class="reference internal" href="../about.html#citation-psa-pake"><span class="cite">[PSA-PAKE]</span></a> is provided in a separate specification to reflect the different status of this API, and indicate that a future version can include incompatible changes to the PAKE API. When the PAKE API is stable, it will be included in a future version of the PSA Cryptographic API specification.</p>
<p>In future, other companion documents will define <em>profiles</em> for this specification. A profile is
a minimum mandatory subset of the interface that a compliant implementation must
provide.</p>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar" role="navigation" aria-label="main navigation">
        <div class="sphinxsidebarwrapper"><h3><a href="../index.html"><b>PSA Crypto API</b></a></h3>
IHI 0086<br/>
Non-confidential<br/>
Version 1.1.0
<span style="color: red; font-weight: bold;"></span>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../about.html">About this document</a></li>
</ul>
<ul class="current">
<li class="toctree-l1 current"><a class="current reference internal" href="#">1. Introduction</a></li>
<li class="toctree-l1"><a class="reference internal" href="goals.html">2. Design goals</a></li>
<li class="toctree-l1"><a class="reference internal" href="functionality.html">3. Functionality overview</a></li>
<li class="toctree-l1"><a class="reference internal" href="sample-arch.html">4. Sample architectures</a></li>
<li class="toctree-l1"><a class="reference internal" href="conventions.html">5. Library conventions</a></li>
<li class="toctree-l1"><a class="reference internal" href="implementation.html">6. Implementation considerations</a></li>
<li class="toctree-l1"><a class="reference internal" href="usage.html">7. Usage considerations</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api/library/index.html">8. Library management reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api/keys/index.html">9. Key management reference</a></li>
<li class="toctree-l1"><a class="reference internal" href="../api/ops/index.html">10. Cryptographic operation reference</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../appendix/example_header.html">Example header file</a></li>
<li class="toctree-l1"><a class="reference internal" href="../appendix/encodings.html">Algorithm and key type encoding</a></li>
<li class="toctree-l1"><a class="reference internal" href="../appendix/specdef_values.html">Example macro implementations</a></li>
<li class="toctree-l1"><a class="reference internal" href="../appendix/sra.html">Security Risk Assessment</a></li>
<li class="toctree-l1"><a class="reference internal" href="../appendix/history.html">Changes to the API</a></li>
</ul>
<ul>
<li class="toctree-l1"><a class="reference internal" href="../psa_c-identifiers.html">Index of API elements</a></li>
</ul>
<div id="searchbox" style="display: none" role="search">
  <h3>Quick search</h3>
    <form class="search" action="../search.html" method="get">
      <div><input type="text" name="q" /></div>
      <div><input type="submit" value="Go" /></div>
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <div class="footer">
      &copy; 2018-2022, Arm Limited or its affiliates. All rights reserved.
      
      |
      Powered by <a href="http://sphinx-doc.org/">Sphinx 1.6.7</a>
      &amp; <a href="https://github.com/bitprophet/alabaster">Alabaster 0.7.8</a>
      
    </div>

    

    
  </body>
</html>